/*
 * Nombre: OpcionHorario.java 
 * Versión: 1.0.1 
 * Autor: Alberto de Jesús Castro Becerra, Alonso Fabián Orozco Pérez	
 * Creado: 30-mar-2013 
 * Modificado: 02-abril-2013 
 * Diagrama: GAPI v4.6.1 
 * Caso de uso: MGH1 
 */
package Dominio;

import java.util.ArrayList;

/**
 * Clase que representa una opción de horario
 *
 * @author Alberto
 */
public class OpcionHorario {

    private ArrayList<AsignaturaOfertaAcademicaPonderada> listaAsignaturas;
    private double ponderacionDeHorario;

    /**
     * Método constructor
     */
    public OpcionHorario() {
        ponderacionDeHorario = 0;
        listaAsignaturas = new ArrayList<AsignaturaOfertaAcademicaPonderada>();
    }

    /**
     * Retorna la ponderación total de la opción de horario
     *
     * @return la ponderación total de la opción de horario
     */
    public double getPonderacionTotal() {
        return ponderacionDeHorario;
    }

    /**
     * Agrega una asignatura ponderada a la opción de horario
     *
     * @param asignatura - Asignatura a agregar a la opción de horario
     */
    public void agregarAsignaturaPonderada(AsignaturaOfertaAcademicaPonderada asignatura) {
        listaAsignaturas.add(asignatura);
        ponderacionDeHorario += asignatura.getPonderacion();
    }

    /**
     * Retorna el número de asignaturas de la opción de horario
     *
     * @return el número de asignaturas de la opción de horario
     */
    public int obtenerNumeroDeAsignaturas() {
        return listaAsignaturas.size();
    }

    /**
     * Retorna la lista de asignaturas ponderadas de la opción de horario
     *
     * @return la lista de asignaturas ponderadas de la opción de horario
     */
    public ArrayList<AsignaturaOfertaAcademicaPonderada> getListaAsignaturas() {
        return listaAsignaturas;
    }

    /**
     * Reotrna las asignaturas de la opción de horario
     *
     * @return las asignaturas de la opción de horario
     */
    @Override
    public String toString() {
        String respuesta = "";

        for (int i = 0; i < listaAsignaturas.size(); i++) {
            String nombre = listaAsignaturas.get(i).getAsignaturaOferta().getNombre();
            respuesta += nombre + ", ";
        }
        respuesta += "\n";

        return respuesta;
    }
}
